home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / sys / m68k / 147 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  2.6 KB

  1. Path: classic.iinet.com.au!news
  2. From: ianc@iinet.net.au (Ian Caddy)
  3. Newsgroups: comp.os.os9,comp.sys.m68k
  4. Subject: Re: 68332 CSBOOT* help?
  5. Date: 24 Jan 1996 12:39:04 GMT
  6. Organization: iiNet Technologies
  7. Message-ID: <4e5998$kmd@classic.iinet.com.au>
  8. References: <4dkvv8$v65@linux.cpsc.ucalgary.ca>
  9. NNTP-Posting-Host: grunge170.dy.iinet.net.au
  10. Mime-Version: 1.0
  11. X-Newsreader: WinVN 0.93.14
  12.  
  13. In article <4dkvv8$v65@linux.cpsc.ucalgary.ca>, magee@cpsc.ucalgary.ca 
  14. says...
  15. >
  16. >  Hello all,
  17.  
  18. <snip>
  19.  
  20. >  I can't seem to figure out how CSBOOT* is mapping the EPROM in the 
  21. '332's
  22. >address space. The EVS executes Rombug fine at $60000; the start of the
  23. >EPROM is like this:
  24. >
  25. >Offset    00  01  02  03  04  05  06  07  . . .
  26. >------    --  --  --  --  --  --  --  --
  27. >$00000    00  00  49  00  00  06  04  c4 ..
  28. >
  29. >This means the CPU's initial SP will be $4900, PC will be $6004c4, which
  30. >works. But HOW does the EVS find the EPROM at $60000 immediately after
  31. >bootup? My understanding of the 332 is that the EPROM (and all other
  32. >peripherals hooked up to the chip select lines) must be mapped into
  33. >memory by the boot code (via the CSAR/CSORs). If this is so, how does
  34. >the EPROM get up to $60000 at the very start?
  35. >
  36. >  A local hardware guru we've talked to says that the '332 must execute
  37. >the EPROM from $0.l after a reset, then the software must remap the 
  38. EPROM
  39. >afterward if desired.
  40.  
  41. The local hardware guru is correct that after reset the 332 will get the 
  42. initial stack pointer and program counter address from address 0 to 8.  
  43. When the 332 resets only the CSBOOT is valid and it is valid for from 0 
  44. to 0x0FFFFF with 13 wait states.  Now the boot EPROM is much smaller than 
  45. this in your case 1mbit or 128KBytes or from 0 to 0x01FFFF which is a 
  46. subset of the chip select. What happens (or should happen) is that the 
  47. contents of this EPROM are mirrored on the boundaries of 0x020000 so the 
  48. data at address 0 is the same as the data at address 0x020000 and 
  49. 0x040000 and 0x060000 etc. due to the limited amount of address lines 
  50. connected to the EPROM.
  51.  
  52. So the trick in software is to ORG your code at a high mirrored address 
  53. that is valid when the 332 boots and then at a later stage you can set 
  54. the chip select for CSBOOT to just point to the chosen address, in this 
  55. case 0x060000.
  56.  
  57. When creating your EPROM files the best thing to do is also ORG your 
  58. vectors at 0x060000 and when the compiler creates an S record file, 
  59. convert it to binary with a base address of 0x060000 or load into your 
  60. EPROM programmer and set the base address to 0x060000.
  61.  
  62. Hope this resolves your question,  if you have any other questions just 
  63. drop me some mail.
  64.  
  65. Ian Caddy
  66. IC Systems Pty Ltd
  67. Perth, West Australia
  68.  
  69.